﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BDConn;

namespace Reportes_
{
    public partial class WebForm1 : System.Web.UI.Page
    {

        consultas pro = new consultas();// instancía de la clase consulta, para poder utilizar sus métodos.
        BDClass miBD = new BDClass(BDClass.cadConn);
        

        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack == true)// si postback es verdadero
            { 
                // no hacer nada
            }
            else// de lo contrario
            {
              pro.CargarProfesores(ddl_profesores); // Cargamos  en los DROP DOWN LIST a los profesores
             pro.Cargar_Grupos(ddl_grupos);// y grupos.
            }
        }


       //Visor de tipo de reporte-------------------------------------------------------------
        protected void rbl_tipoReporte_SelectedIndexChanged(object sender, EventArgs e)
        {
            MultiView1.ActiveViewIndex = Convert.ToInt32(rbl_tipoReporte.SelectedValue);
            btn_generar.Visible = true;

        }
        //BOTON DE IMPRIMIR-----------aunque se llame generar :/-------------------------------
        protected void btn_generar_Click(object sender, EventArgs e)
        {

            if (DatePicker_fechaIniciop.SelectedDate == null || DatePicker_fechaFinp.SelectedDate == null)
            {
                btn_generar.Enabled = false;
            }
            else
            {
                Response.Write("<script>window.print()</script>");
            }

        }
       //si selecciona una fecha, se habilitara el datepicker de fechafin--------------------------------------------------
        protected void DatePicker_fechaIniciop_SelectionChanged(object sender, EventArgs e)
        {
            if (DatePicker_fechaIniciop.SelectedDate != null )// si  hay fecha seleccionada
            {
                DatePicker_fechaFinp.Enabled = true; // Se habilita  la seleccion de fecha fin.

                if (DatePicker_fechaIniciop.SelectedDate > DateTime.Now)// si la fecha de inicio seleccionada es mayor a la de hoy
                {
                    miBD.Mensaje("Fecha seleccionada incorrecta, seleccione una fecha pasada.",Page);// mensaje error
                    DatePicker_fechaIniciop.SelectedDate=DateTime.Now;// Set por default la fecha de hoy. si la fecha seleccionada excede a la de hoy.
                }
            }
        }
         //hasta que seleccione fecha fin, se habilitara el boton de imprimir---------Hacer consulta--------------------------
        protected void DatePicker_fechaFinp_SelectionChanged(object sender, EventArgs e)
        {
            if (DatePicker_fechaIniciop.SelectedDate != null)
            {
                if (DatePicker_fechaFinp.SelectedDate > DateTime.Now)
                {
                    miBD.Mensaje("Fecha seleccionada incorrecta, seleccione una fecha pasada.", Page);// mensaje error
                    DatePicker_fechaFinp.SelectedDate = DateTime.Now;
                }
                    if (ddl_profesores.Text.ToString() != "Todos")// si la lista de profesores es diferente a el valor "Todos"...
                    {
                        pro.LeerProfesores(DatePicker_fechaIniciop, DatePicker_fechaFinp, GridView_pro, ddl_profesores);// Cargamos al profesor seleccionado
                                          
                        btn_generar.Enabled = true;// habilitamos el boton imprimir.
                    }
                    else
                    {
                        pro.LeerTodosProfesores(DatePicker_fechaIniciop, DatePicker_fechaFinp, GridView_pro, ddl_profesores);
                        //GridView_pro.Columns[4].Visible = false;
                        //GridView_pro.Columns[0].Visible = true;// hacemos visile el campo profesores(ya que son todos los profesores)
                        btn_generar.Enabled = true;// imprimir
                    }
              
            }
        }

        // paginar GRIDVIEW de profesores..........................................
        protected void GridView_pro_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
               
                pro.LeerProfesores(DatePicker_fechaIniciop, DatePicker_fechaFinp, GridView_pro, ddl_profesores);// Cargamos al profesor seleccionado
                GridView_pro.PageIndex = e.NewPageIndex;
                GridView_pro.DataBind();
                pro.LeerTodosProfesores(DatePicker_fechaIniciop, DatePicker_fechaFinp, GridView_pro, ddl_profesores);
                GridView_pro.PageIndex = e.NewPageIndex;
                GridView_pro.DataBind();
            }
            catch { }
        }

 //.............................CONSULTA DE GRUPOS.......................................................................
        protected void DatePicker_fechaIniciog_SelectionChanged(object sender, EventArgs e)
        {
            if (DatePicker_fechaIniciog.SelectedDate != null)
            {
                DatePicker_fecheFing.Enabled = true;

                if (DatePicker_fechaIniciog.SelectedDate > DateTime.Now)
                {
                    miBD.Mensaje("Fecha seleccionada incorrecta, seleccione una fecha pasada.", Page);// mensaje error
                    DatePicker_fechaIniciog.SelectedDate = DateTime.Now;
                }
            }
        }


 
        protected void DatePicker_fecheFing_SelectionChanged(object sender, EventArgs e)
        {
            if (DatePicker_fechaIniciog.SelectedDate != null)
            {
                pro.LeerGrupos(DatePicker_fechaIniciog, DatePicker_fecheFing, GridView_grup, ddl_grupos);
                btn_generar.Enabled = true;   // imprimir

                if (DatePicker_fecheFing.SelectedDate > DateTime.Now)
                {
                    miBD.Mensaje("Fecha seleccionada incorrecta, seleccione una fecha pasada.", Page);// mensaje error
                    DatePicker_fechaIniciog.SelectedDate = DateTime.Now;
                }
            }
        }

        protected void ddl_profesores_SelectedIndexChanged(object sender, EventArgs e)
        {
            
            if (ddl_profesores.Text.ToString() != "Elegir")
            {
                DatePicker_fechaIniciop.Enabled = true;
            }
        }


        // paginacion grupos............................................................................
        protected void GridView_grup_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                pro.LeerGrupos(DatePicker_fechaIniciog, DatePicker_fecheFing, GridView_grup, ddl_grupos);
                GridView_grup.PageIndex = e.NewPageIndex;
                GridView_grup.DataBind();
            }
            catch { }
        }

        protected void ddl_grupos_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddl_grupos.Text.ToString() != "Elegir")
            {
                DatePicker_fechaIniciog.Enabled = true;
            }
        }
//.........................................................SEMAFORO.......................................................................
        protected void GridView_pro_RowDataBound(object sender, GridViewRowEventArgs e)
        {

            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                int valor = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "diferencia"));// CONSULTA DIRECTAMENTE A LA TABLA PARA TOMAR EL VALOR

                if (valor <= 50 | valor <= 59 && valor >= 0 | valor <=10)// si checa antes de 10 minutos depsues  aun verde
                {
                    e.Row.ForeColor = System.Drawing.Color.Green;// si no es así, se pondra verde. lo que significa que checko a tiempo :)
                }
                if (valor >= 20 &&  valor <=30)// equivalente a 20 minutos de margen para checkar
                {
                    e.Row.ForeColor = System.Drawing.Color.Red;// si se pasa de los 10 min. el registro se pone rojo(fore)
                    e.Row.Font.Bold = true;
                }
                if (valor >= 10 && valor <= 19)// si esta entre 10 y 19 minutos tarde se pone amarillo
                {
                    e.Row.ForeColor = System.Drawing.Color.Yellow;// si se pasa de los 10 min. el registro se pone rojo(fore)
                    e.Row.Font.Italic = true;
                    e.Row.Font.Bold = true;
                }


            }

        }
//........................................................FIN.............................................................................
   
        }
    }
